//adiciona mascara de minusculo
function LibTextBox_MascaraMinusculo(objeto)
{ 
	objeto.value = objeto.value.toLowerCase();
}

//adiciona mascara de maiusculo
function LibTextBox_MascaraMaiusculo(objeto)
{ 
	objeto.value = objeto.value.toUpperCase();
}

//adiciona mascara de cep
function LibTextBox_MascaraCep(objeto)
{ 
	if(LibTextBox_MascaraInteiro()==false)
	{		
		event.returnValue = false;	
	}
	return LibTextBox_formataCampo(objeto, '00.000-000', event);
}

//adiciona mascara de hora 
function LibTextBox_MascaraHora(objeto){
	if(LibTextBox_MascaraInteiro()==false)
	{		
		event.returnValue = false;	
	}		
	return LibTextBox_formataCampo(objeto, '00:00', event);
}

//adiciona mascara de data 
function LibTextBox_MascaraData(objeto){
	if(LibTextBox_MascaraInteiro()==false)
	{		
		event.returnValue = false;	
	}		
	return LibTextBox_formataCampo(objeto, '00/00/0000', event);
}

//adiciona mascara de datahora 
function LibTextBox_MascaraDataHora(objeto){
	if(LibTextBox_MascaraInteiro()==false)
	{		
		event.returnValue = false;	
	}		
	return LibTextBox_formataCampo(objeto, '00/00/0000 00:00', event);
}

//adiciona mascara de mesano 
function LibTextBox_MascaraMesAno(objeto){
	if(LibTextBox_MascaraInteiro()==false)
	{		
		event.returnValue = false;	
	}		
	return LibTextBox_formataCampo(objeto, '00/0000', event);
}

//adiciona mascara ao telefone
function LibTextBox_MascaraTelefone(objeto)
{		
	if(LibTextBox_MascaraInteiro()==false)
	{		
		event.returnValue = false;	
	}		
	return LibTextBox_formataCampo(objeto, '(00) 0000-0000', event);
}

//adiciona mascara ao CPF
function LibTextBox_MascaraCPF(objeto)
{	
	if(LibTextBox_MascaraInteiro()==false)
	{		
		event.returnValue = false;
	}		
	return LibTextBox_formataCampo(objeto, '000.000.000-00', event);
}

//adiciona mascara de cnpj
function LibTextBox_MascaraCNPJ(objeto)
{	
	if(LibTextBox_MascaraInteiro()==false)
	{		
		event.returnValue = false;	
	}		
	return LibTextBox_formataCampo(objeto, '00.000.000/0000-00', event);
}
 
function LibTextBox_MascaraInteiro()
{	
	if (event.keyCode < 48 || event.keyCode > 57)
	{		
		event.returnValue = false;		
		return false;	
	}	
	return true;
}

//Valida CEP
function LibTextBox_ValidaCep(objeto)
{	
	if(objeto.value != "")
	{
		exp = /\d{2}\.\d{3}\-\d{3}/	
		if(!exp.test(objeto.value))
			alert('Numero de Cep Invalido');
	}
}

//Valida DATAHORA
function LibTextBox_ValidaDataHora(objeto)
{	
	if(objeto.value != "")
	{
		exp = /\d{2}\/\d{2}\/\d{4}\ \d{2}\:\d{2}/	
		if(!exp.test(objeto.value))
			alert('Data e Hora Invalida');
	}
}

//Valida MesAno
function LibTextBox_ValidaMesAno(objeto)
{	
	if(objeto.value != "")
	{
		exp = /\d{2}\/\d{4}/	
		if(!exp.test(objeto.value))
			alert('Mes/Ano Invalido');
	}
}

//valida telefone
function LibTextBox_ValidaTelefone(objeto)
{	
	if(objeto.value != "")
	{
		exp = /\(\d{2}\)\ \d{4}\-\d{4}/	
		if(!exp.test(objeto.value))
			alert('Numero de Telefone Invalido');
	}
}

function LibTextBox_ValidaCPF(objeto)
{	
      var cpf = objeto.value;
	  cpf = cpf.replace( ".", "" ).replace( ".", "" ).replace( "-", "" );
      var numeros, digitos, soma, i, resultado, digitos_iguais;
      digitos_iguais = 1;
      if (cpf.length < 11)
      {
            alert('CPF invalido');
            return false;
      }
      for (i = 0; i < cpf.length - 1; i++)
            if (cpf.charAt(i) != cpf.charAt(i + 1))
                  {
                  digitos_iguais = 0;
                  break;
                  }
      if (!digitos_iguais)
            {
            numeros = cpf.substring(0,9);
            digitos = cpf.substring(9);
            soma = 0;
            for (i = 10; i > 1; i--)
                  soma += numeros.charAt(10 - i) * i;
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(0))
            {
                alert('CPF invalido');
                return false;
            }
            numeros = cpf.substring(0,10);
            soma = 0;
            for (i = 11; i > 1; i--)
                  soma += numeros.charAt(11 - i) * i;
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(1))
            {
                alert('CPF invalido');
                return false;
            }
            return true;
            }
      else
      {
        alert('CPF invalido');
        return false;
      }
}

function LibTextBox_ValidaCNPJ(objeto)
{	
	if(objeto.value != "")
	{
		var cnpj = objeto.value;	
		var valida = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2);	
		var dig1= new Number;	
		var dig2= new Number;		
		exp = /\.|\-|\//g	
		cnpj = cnpj.toString().replace( exp, "" ); 	
		var digito = new Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));			
		for(i = 0; i<valida.length; i++)
		{		
			dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);			
			dig2 += cnpj.charAt(i)*valida[i];		
		}	
		dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));	
		dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));		
		if(((dig1*10)+dig2) != digito)			
			alert('CNPJ Invalido');	
	}	
}

//formata de forma generica os campos
function LibTextBox_formataCampo(campo, Mascara, evento) 
{ 	
var boleanoMascara; 		
var Digitato = evento.keyCode;	
exp = /\-|\.|\:|\,|\/|\(|\)| /g	
oRange = document.selection.createRange();
if(campo.value.length == Mascara.length && oRange.text == "")
	event.returnValue = false;	
else if(oRange.text != "")
{	
			/*var t = campo.createTextRange();
			t.move("character", 1), t.moveEnd("character", 5), t.select();
            end -= start + o.value.slice(start + 1, end).split("\n").length - 1;
            start -= o.value.slice(0, start).split("\n").length - 1;
            t.move("character", start), t.moveEnd("character", end), t.select();*/
			return false;
}
campoSoNumeros = campo.value.toString().replace( exp, "" );
var posicaoCampo = 0;
var NovoValorCampo="";    
var TamanhoMascara = campoSoNumeros.length; 		
	if (Digitato != 8) 
	{ 
		// backspace 		
		for(i=0; i<= TamanhoMascara; i++) {
			boleanoMascara  = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".") || (Mascara.charAt(i) == "/") || (Mascara.charAt(i) == ":") || (Mascara.charAt(i) == ","))
			boleanoMascara  = boleanoMascara || ((Mascara.charAt(i) == "(") || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "))     		
			if (boleanoMascara) 
			{
				NovoValorCampo += Mascara.charAt(i);
				TamanhoMascara++;
			}else {
				NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
				posicaoCampo++;       		
			}       	       	
		}	 	
		campo.value = NovoValorCampo;
		return true;
	}else {
		return true; 	
	}
}
/*
function LibTextBox_ValidaData(pStr)
{
	reDate = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
	alert(pStr);
	if (!reDate.test(pStr)) {
		return true;
	} else if (pStr != null && pStr != "") {
		alert(pStr + " Nao e uma data valida");
		return false;
	}
}*/


function LibTextBox_ValidaData(pStr)
{
	reDate = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/;
	if (reDate.test(pStr)) {
		return true;
	} else if (pStr != null && pStr != "") {
		alert(pStr + " Nao e uma data valida");
	}
} // doDate

function LibTextBox_ValidaHora(pStr)
{
	reTime = /^([0-1]\d|2[0-3]):[0-5]\d$/; //24h
	//reTime = /^(0[1-9]|1[0-2]):[0-5]\d$/;  //12h
	if (reTime.test(pStr)) {
		return true
	} else if (pStr != null && pStr != "") {
		alert(pStr + " Nao e um horario/tempo valido");
	}
}

function LibTextBox_MascaraMoney(campo) 
{
	teclapres = event;
	tammax = 17;
    //uso:
    //<input type="Text" name="fat_vr_bruto" maxlength="17" onKeyDown="FormataValor(this,17,event)">

    var tecla = teclapres.keyCode;
    vr = campo.value;
    vr = vr.replace( "/", "" );
    vr = vr.replace( "/", "" );
    vr = vr.replace( ",", "" );
    vr = vr.replace( ".", "" );
    vr = vr.replace( ".", "" );
    vr = vr.replace( ".", "" );
    vr = vr.replace( ".", "" );
    tam = vr.length;

    if (tam < tammax && tecla != 8){ tam = vr.length + 1; }

    if (tecla == 8 ){    tam = tam - 1; }
        
    if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
        if ( tam <= 2 ){ 
             campo.value = vr; }
         if ( (tam > 2) && (tam <= 5) ){
             campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ); }
         if ( (tam >= 6) && (tam <= 8) ){
             campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }
         if ( (tam >= 9) && (tam <= 11) ){
             campo.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }
         if ( (tam >= 12) && (tam <= 14) ){
             campo.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }
         if ( (tam >= 15) && (tam <= 17) ){
             campo.value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam );}
    }            
}